package com.question.business.user.model.ao;

import com.question.common.annotation.DictValid;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.util.List;

/**
 * 用户修改参数
 *
 * @author star
 * @since 2022-07-20
 */
@Data
public class UserUpdateAO {

    /**
     * ID
     */
    @NotBlank(message = "ID不能为空")
    @Size(max = 20, message = "ID最长不能超过20位")
    private String id;

    /**
     * 昵称
     */
    @NotBlank(message = "昵称不能为空")
    @Size(max = 50, message = "昵称最长不能超过50位")
    private String nickName;

    /**
     * 直属上级
     */
    @Size(max = 20, message = "直属上级最长不能超过20位")
    private String parentId;
    
    /**
     * 联系人
     */
    private String contact;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String district;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 账号到期日
     */
    private LocalDate dueDate;

    /**
     * 启用状态(1:启用2:停用)
     */
    @DictValid(type = "enabled", message = "启用状态不存在")
    @NotNull(message = "启用状态不能为空")
    private Integer enabled;

    /**
     * 关联机构
     */
    private List<@NotBlank(message = "机构ID不能为空") @Size(max = 20, message = "机构ID最长不能超过20位") String> orgIds;

    /**
     * 关联部门
     */
    private List<@NotBlank(message = "部门ID不能为空") @Size(max = 20, message = "部门ID最长不能超过20位") String> deptIds;

    /**
     * 关联岗位
     */
    private List<@NotBlank(message = "岗位ID不能为空") @Size(max = 20, message = "岗位ID最长不能超过20位") String> postIds;

    /**
     * 关联角色
     */
    private List<@NotBlank(message = "角色ID不能为空") @Size(max = 20, message = "角色ID最长不能超过20位") String> roleIds;

}